简单地说这是一种让
3D物件产生透明感的技术。屏幕上显示的3D物件,每个
像素中有红R、绿G、蓝B三组数值。若3D环境中允许像素能拥有一组α值,我们就称它拥有一个
α通道。α值的内容,是记载像素的透明度。这样一来使得每一个物件都可以拥有不同的透明程度。比如说,玻璃会拥有很高的透明度,而一块木头可能就没什么透明度可言。α混合这个功能,就是处理两个物件在萤幕画面上叠加的时候,还会将α值列入考虑,使其呈现接近真实物件的效果。
第一步,先把源像素和目标像素的 RGB 三个颜色分量分离,然后把源像素的三个颜色分量分别乘上 Alpha 的值,并把目标像素的三个颜色分量分别乘上 Alpha 的反值,接下来把结果按对应颜色分量相加,再对最后求得的每个分量结果除以 Alpha 的最大值(通常这一步都是用移位来完成,这亦是 Alpha 的最大值为何总是二的幂的原因),最后把三个颜色分量重新合成为一个像素输出。
在这个过程中,为了分离像素中的 RGB 三个颜色分量,我们一般会使用
掩膜的方法。至于具体的三个掩膜值:RMask、GMask 和 BMask,可以从
DirectDraw 中的DDPixelFormat 返回得到。